package cn.com.bluemoon.daps.sync.core.sync.sql.mysql.datatype.string;

import cn.com.bluemoon.daps.sync.core.sync.sql.mysql.datatype.DataType;
import com.google.common.collect.ImmutableSet;

import java.util.Set;

/**
 * @author Jarod.Kong
 * @date 2021/7/22 11:28
 */
public class StringDataType implements DataType {
    /**
     * 默认值处理
     * 是否加单引号 等
     *
     * @param defaultValue source
     * @return target
     */
    @Override
    public Object cast(Object defaultValue) {
        if (defaultValue == null) return null;
        // 若为''直接返回
        if (defaultValue.toString().trim().equalsIgnoreCase("''")){
            return defaultValue;
        }
        return wrapper(defaultValue, SINGLE_QUOTE);
    }

    /**
     * @return 名称
     */
    @Override
    public Set<String> name() {
        return ImmutableSet.of("varchar", "char", "enum", "set");
    }
}
